// JavaScript Document
//variables de alcance GLOBAL

var misVehiculosHash = new Hashtable();
var misGruposVehiculosHash = new Hashtable();
var misComandosHash = new Hashtable();

var misVehiculosMarkersHash = new Hashtable(); //hash con los Iconos de los vehiculos (se van creando a medida que se van seleccionando)
var misVehiculosSentidoHash = new Hashtable(); //hash con los iconos de sentido de los vehiculos (se van creando a medida que se van seleccionando)
var misVehiculosSeguiMarker = null;
var misVehiculosSelecMarker = null;

var reqHandlerMisVehiculos = null;

var reqHandler = null;

var orderTypeMisVehiculos = "A";
var sendCommandPanelActive = false; //indica si el panel de enviar comandos esta activo.

var vehiculosSeleccionadosId = new Array();

if (MOVILES_SELECCIONADOS.length>0){
	vehiculosSeleccionadosId = MOVILES_SELECCIONADOS.split(",");
	cMapController.getMapActive().setVehiculosVisiblesId(vehiculosSeleccionadosId);
}
var vehiculosMonitoreadosId = new Array();
if (MOVILES_MONITOR.length>0)
	vehiculosMonitoreadosId = MOVILES_MONITOR.split(",");

var textToSearchMovil = '';

var filtrarVehiculosInactivos = false;
//definiciones para vistas de label de moviles en el mapa

/**************************FUNCIONES PARA PANTALLA PRINCIPAL****************************/

	function createPopUpGroupVehiculos(e, idGrupo, element){
	   PopUpMenuMap = new PopupMenu();

	   if (LOGIN.PERMISOS[0]){
	  	  PopUpMenuMap.add('Modificar', function(target) {
    	 	 modificarGrupoVehiculos(idGrupo.toString());
	   	  });
	   	  PopUpMenuMap.add('Eliminar', function(target) {
	         eliminarGrupoMovil(idGrupo.toString());
  	      });
	      PopUpMenuMap.addSeparator();
	      PopUpMenuMap.add('Asignar moviles', function(target) {
	         asignarGrupoMovil(idGrupo.toString());
  	      });
		  PopUpMenuMap.addSeparator();
	   }
	   PopUpMenuMap.add('Seleccionar vehiculos', function(target) {
	         selectMovilesGrupo(true, idGrupo.toString());
  	      });
	   PopUpMenuMap.add('Quitar seleccion', function(target) {
	         selectMovilesGrupo(false, idGrupo.toString());
  	      });
       PopUpMenuMap.setSize(140, 0);
       PopUpMenuMap.bind(element); // target is this pre block
       PopUpMenuMap.show(e);
	   return false;
	}

	function createPopUpMovil(e, idMovil, element,isMenu){
	   PopUpMenuMap = new PopupMenu();
	   if (indexOfArray(cMapController.getMapActive().getVehiculosVisiblesId(),idMovil.toString())!=-1){
		    PopUpMenuMap.add('Ocultar', function(target) {
		    	cMapController.getMapActive().ocultarMovil(idMovil.toString());
	   		});
	 	    PopUpMenuMap.add('Localizar en el mapa', function(target) {
	 	    	dejarDeSeguir();
	 	    	cMapController.getMapActive().localizarMovil(idMovil.toString());
	  	    });
	   }
	   else {
	   		PopUpMenuMap.add('Ver y localizar', function(target) {
				if (cMapController.getMapActive().mostrarMovil(idMovil.toString())){
					dejarDeSeguir();
					cMapController.getMapActive().localizarMovil(idMovil.toString());
				    }
	  	        });
	   		PopUpMenuMap.add('Ver', function(target) {
				cMapController.getMapActive().mostrarMovil(idMovil.toString());
	  	        });
	   }

	   if (LOGIN.PERMISOS[0]){ //SE PUEDE AGRUPAR/DESAGRUPAR
		   if (parseInt(misVehiculosHash.get(idMovil.toString()).grupoId)!=0){
		   		PopUpMenuMap.addSeparator();
		   		PopUpMenuMap.add('Desagrupar', function(target) {
	      			desagruparMovil(idMovil.toString());
	   			});
		   }
	   }
	   PopUpMenuMap.addSeparator();
	   //Monitoreo
	   if (LOGIN.PERMISOS[1]){ //PUEDE MONITOREAR
	   		if (indexOfArray(vehiculosMonitoreadosId,idMovil.toString())!=-1)
		    	PopUpMenuMap.add('Dejar de monitorear', function(target) {
		   			noMonitorearMovil(idMovil.toString());
		   		});
		   else
	   			PopUpMenuMap.add('Monitorear', function(target) {
		   			monitorearMovil(idMovil.toString());
		   		});
	   }
	   
	   if(LOGIN.isBykom && cMapController.getMapActive().getObjetoMonitorearEventoCliente()!= null &&
			   (cMapController.getMapActive().getObjetoMonitorearEventoCliente().idMovilAsignado.toString() == idMovil.toString() 
		   ||(cMapController.getMapActive().getObjetoMonitorearEventoCliente().objetivoCuenta == 2  &&
				   cMapController.getMapActive().getObjetoMonitorearEventoCliente().idCuenta.toString() == idMovil.toString() )
							)
		 ){
		   if(cMapController.getMapActive().getEstadoActivoMonitorearEventoCliente()){
			   PopUpMenuMap.add('Dejar de seguir evento', function(target) {
				   cMapController.getMapActive().desactivarMonitorearEvento();
			   });
		   }else{
			   PopUpMenuMap.add('Seguir evento', function(target) {
				   cMapController.getMapActive().activarMonitorearEvento();
			   });
		   }
	   }
	   //Seguimiento
	   if (idMovil.toString()==cMapController.getMapActive().getCuentaSeguimiento())
		    PopUpMenuMap.add('Dejar de seguir', function(target) {
		    	cMapController.getMapActive().noSeguirMovil();
	   		});
	   else
	   		PopUpMenuMap.add('Seguir', function(target) {
	   			cMapController.getMapActive().seguirMovil(idMovil.toString());
	   		});
	   //Seleccion
	   if (idMovil.toString() == cMapController.getMapActive().getSeleccionActual())
		    PopUpMenuMap.add('Quitar seleccion', function(target) {
		    	cMapController.getMapActive().noSeleccionarMovil();
	   		});
	   else
	   		PopUpMenuMap.add('Seleccionar', function(target) {
	   			cMapController.getMapActive().seleccionarMovil(idMovil.toString());
	   		});
	   //ver tablero
	   if (LOGIN.PERMISOS[12])
		   PopUpMenuMap.add('Ver tablero', function(target) {
			    cMapController.getMapActive().mostrarMovil(idMovil.toString());
		   		viewMovilTablero(idMovil.toString());
	   		});
	   //envia comando
	   if ((LOGIN.PERMISOS[2])||(LOGIN.PERMISOS[3])){
	   		PopUpMenuMap.addSeparator();
	 	    PopUpMenuMap.add('Enviar comando', function(target) {
		   		centroDeComandos(idMovil.toString());
	   		});
	   }
	   // ACTIVAR/DESACTIVAR
	   if (LOGIN.PERMISOS[11]){
	   	   PopUpMenuMap.addSeparator();
		   if (parseInt(misVehiculosHash.get(idMovil.toString()).activo)==1)
		   		PopUpMenuMap.add('Pasar a estado inactivo', function(target) {
	      			activarMovil(idMovil.toString(),0);
	   			});
		   else
		   		PopUpMenuMap.add('ACTIVAR', function(target) {
	      			activarMovil(idMovil.toString(),1);
	   			});
	   }
	   // VISUALIZAR CONTACTOS
	   if ((LOGIN.PERMISOS[16])){
	   		PopUpMenuMap.addSeparator();
	 	    PopUpMenuMap.add('Ver contactos de este movil', function(target) {
		   		createOpenWindow_contacto(idMovil.toString());
	   		});
	   }
	   if(cGeoController.implementaRouting()){
		   	PopUpMenuMap.addSeparator();
		   	PopUpMenuMap.add('Ir hasta (escribir direccion)', function(target) {
		   		cMapController.getMapActive().irHastaDireccion(idMovil.toString());
	   	 	});
	 	    PopUpMenuMap.add('Ir hasta (marcar punto)', function(target) {
	 	    	cMapController.getMapActive().irHastaPunto(idMovil.toString());
	 	    });
	   }

	   PopUpMenuMap.setSize(140, 0);
	   PopUpMenuMap.bind(element); // target is this pre block
	   PopUpMenuMap.show(e,isMenu);
	   return false;
	   }

	function selectMovilesGrupo(checkedValue, idGrupo){
		idGrupo = idGrupo.toString();
		var fields =  document.getElementsByName('boxVehiculos[]');
		for (var i = 0; i < fields.length; i++){
			var movil = misVehiculosHash.get(fields[i].value.toString());
			if ((movil!=null)&&(movil.grupoId.toString()==idGrupo)&&(fields[i].checked!=checkedValue)){
				fields[i].click();
			}
		}
	}

	function monitorearMovil(idMovil){
		if (vehiculosMonitoreadosId.length>=misVehiculos_limitMonitor){
			alert('Se ha alcanzado el limite de moviles que pueden monitorearse ('+misVehiculos_limitMonitor+'). Para monitorear este movil sera necesario quitar otro de la lista.')
			return false;
		}
		vehiculosMonitoreadosId.push(idMovil.toString());
		cMapController.getMapActive().refreshViewMisVehiculos();
		cambiarIconoMonitor(false);//cambia el icono de monitorear en el menu de seguimiento y seleccion
		return true;
	}

	function noMonitorearMovil(idMovil){
		var pos=indexOfArray(vehiculosMonitoreadosId,idMovil.toString());
		if (pos!=-1)
			vehiculosMonitoreadosId.splice(pos,1);
		cMapController.getMapActive().refreshViewMisVehiculos();
		cambiarIconoMonitor(true);//cambia el icono de monitorear en el menu de seguimiento y seleccion
	}

	function monitorearMovilesSeleccionados(){
		vehiculosMonitoreadosId = new Array();
		for (var i=0; i<cMapController.getMapActive().getVehiculosSeleccionadosId().length;i++){
			vehiculosMonitoreadosId[i] = cMapController.getMapActive().getVehiculosSeleccionadosId()[i];
			if (i==misVehiculos_limitMonitor-1){
				alert('Se alcanzo el limite de moviles que pueden monitorearse al mismo tiempo, solo se incluiran los primeros '+misVehiculos_limitMonitor+' seleccionados.')
				break;
			}
		}
		cMapController.getMapActive().refreshViewMisVehiculos();
	}

	function noMonitorearMovilesSeleccionados(){
		for (var i=0;i<cMapController.getMapActive().getVehiculosSeleccionadosId().length;i++){
			var pos=indexOfArray(vehiculosMonitoreadosId,cMapController.getMapActive().getVehiculosSeleccionadosId()[i].toString());
			if (pos!=-1)
				vehiculosMonitoreadosId.splice(pos,1);
		}
		cMapController.getMapActive().refreshViewMisVehiculos();
	}
	function checkedVehiculo(check){
		if (check.checked)
			//vehiculosSeleccionadosId.push(check.value);
			cMapController.getMapActive().getVehiculosSeleccionadosId().push(check.value);
		else {
			pos=indexOfArray(cMapController.getMapActive().getVehiculosSeleccionadosId(),check.value);
			if (pos!=-1)
				cMapController.getMapActive().getVehiculosSeleccionadosId().splice(pos,1);
			}
	}

	function ordenarMisVehiculos(){
		if (orderTypeMisVehiculos=="A"){
			orderTypeMisVehiculos="D";
	//		document.getElementById('orderBTNmisVehiculos').style.backgroundImage='url(images/minimenu/BTNorderAZ.gif)';
			$j("#orderBTNmisVehiculos").removeClass().addClass("icono a_z");
		}else{
			orderTypeMisVehiculos="A";
	//		document.getElementById('orderBTNmisVehiculos').style.backgroundImage='url(images/minimenu/BTNorderZA.gif)';
			$j("#orderBTNmisVehiculos").removeClass().addClass("icono z_a");
		}
		printTableMisVehiculos();
	}

	function printTableMisVehiculos(){
		vehiculosTree = new dTree('vehiculosTree');
		vehiculosTree.add(0,-1,'');

		var gruposList = misGruposVehiculosHash.values();
		var misVehiculosList = misVehiculosHash.values();
		//for(var i=0;i<misVehiculosList.length;i++){alert(misVehiculosList[i].grupoId);}
		var sortArray = new SortArray(gruposList,"QUICKSORT");
		sortArray.ordenar(orderTypeMisVehiculos,'nombre');
		var gruposListKeys = new Array();
		for (var i=0; i<gruposList.length; i++)
			gruposListKeys.push(gruposList[i].id);

		var putGroup = false;
		for (var i=0; i<gruposList.length; i++) {
			if(LOGIN.isBykom && flotaCentralId!=undefined && flotaCentralId!="" && flotaCentralId==gruposList[i].id.toString()){
				var groupName = '<span style="color:blue;font-weight:bold;" class="inputLBL" oncontextmenu="return createPopUpGroupVehiculos(event,'+gruposList[i].id+',this);">Central: '+gruposList[i].nombre+'</span>';
			}else{
				var groupName = '<span class="inputLBL" oncontextmenu="return createPopUpGroupVehiculos(event,'+gruposList[i].id+',this);">'+gruposList[i].nombre+'</span>';
			}
			if (LOGIN.objetivo==4){
				//si el objetivo es un "ALIAS" solo muestro grupos que contengan al menos 1 vehiculo.
				putGroup = false;
				for (var u=0; u < misVehiculosList.length; u++ ){
					if (misVehiculosList[u].grupoId == gruposList[i].id){
						putGroup = true;
						u = misVehiculosList.length;
					}
				}
				if (putGroup)
					vehiculosTree.add(i+1,0,groupName,'','','','js/dtree/img/folder.gif');
			}else
				vehiculosTree.add(i+1,0,groupName,'','','','js/dtree/img/folder.gif');
		}

		var sortArray = new SortArray(misVehiculosList,"QUICKSORT");
		sortArray.ordenar(orderTypeMisVehiculos,'label');
		var searchCount = 0;
		var searchGroupsToExpand = new Array();
		for (var i=0; i<misVehiculosList.length; i++){
			var inactivo = false;
			if ((parseInt(misVehiculosList[i].activo)==0)&&(parseInt(LOGIN.objetivoDB) !=2))
				inactivo = true;
			if (!(filtrarVehiculosInactivos && inactivo)){
				checked = '';
				if (indexOfArray(cMapController.getMapActive().getVehiculosSeleccionadosId(),misVehiculosList[i].id.toString())!=-1)
					checked='checked';
				var checkVal = '<input type="checkbox" name="boxVehiculos[]" value="'+misVehiculosList[i].id+'" '+checked+' onClick="checkedVehiculo(this);" >';
				var bgColor = '';
				var itemSearched = false;
				if ((textToSearchMovil!='')&&(misVehiculosList[i].label.match(textToSearchMovil)!=null)){
					searchCount++;
					itemSearched = true;
				}
							
				// Desde aca...
				itemSpan = '<div class="itemVehiculo" oncontextmenu="return createPopUpMovil(event,'+misVehiculosList[i].id+',this,true);">';
				
				var labelMovil = misVehiculosList[i].label;
				var lengthLabel= labelMovil.length;
				if(lengthLabel>22){
					labelMovilAux = labelMovil.substr(0,21);
				}else{
					labelMovilAux = labelMovil;
				}
				if (itemSearched) {
					if (searchCount==1) {
						itemSpan += '<label class="inputSEARCHED" title="'+labelMovil+'" id="firstMovilSearch">'+labelMovilAux+'</label>';
					} else {
						itemSpan += '<label class="inputSEARCHED" title="'+labelMovil+'">'+labelMovilAux+'</label>';
					}
				} else if (inactivo) {
						itemSpan += '<label  class="inputINACTIVO" title="'+labelMovil+'">'+labelMovilAux+'</label>';
				} else {
						itemSpan += '<label  title="'+labelMovil+'">'+labelMovilAux+'</label>';
				}

				//VISIBILIDAD
				itemSpan += '<ul class="comandosVehiculo">';
				if (indexOfArray(cMapController.getMapActive().getVehiculosVisiblesId(),misVehiculosList[i].id.toString())!=-1){
					itemSpan += '<li>';
					itemSpan += '<img src="images/puntoVisible.gif" border="0" onclick="cMapController.getMapActive().localizarMovil('+misVehiculosList[i].id+');" style="cursor:pointer;" title="Movil visible (Click para localizar)"/>';
					itemSpan += '</li>';
				}

				//SEGUIMIENTO
				if (misVehiculosList[i].id.toString()==cMapController.getMapActive().getCuentaSeguimiento()){
					itemSpan += '<li>';
					itemSpan += '<img src="images/movilSeguimiento.gif" border="0" title="Movil en seguimiento"/>';
					itemSpan += '<li>';
				}

				//SELECCION
				if (misVehiculosList[i].id.toString() == cMapController.getMapActive().getSeleccionActual()){
					itemSpan += '<li>';
					itemSpan += '<img src="images/movilSeleccionado.gif" border="0" title="Movil seleccionado"/>';
					itemSpan += '</li>';
				}

				//MONITOREO
				if (indexOfArray(vehiculosMonitoreadosId,misVehiculosList[i].id.toString())!=-1){
					itemSpan += '<li>';
					itemSpan += '<img src="images/movilMonitoreado.gif" border="0" title="Movil en monitoreo"/>';
					itemSpan += '</li>';
				}
				
				itemSpan += '</ul>';
				itemSpan += '</div>';
				
				// ....hasta aca

				var posGroup = 0;
				if (parseInt(misVehiculosList[i].grupoId)!=0){
					var pos = indexOfArray(gruposListKeys,misVehiculosList[i].grupoId.toString());
					if (pos!=-1)
						posGroup = pos+1;
				}
				var nodeId = i+gruposList.length+1;
				vehiculosTree.add(nodeId, posGroup, itemSpan, '', '', '', '', '', false, checkVal);

				if (itemSearched){
					if ((posGroup!=0) && (indexOfArray(searchGroupsToExpand,posGroup)==-1))
						searchGroupsToExpand.push(posGroup);
				}
			}
		}
		document.getElementById('divListaVehiculos').innerHTML = vehiculosTree;

		if (textToSearchMovil!=''){ //SI HUBO UNA BUSQUEDA DE MOVIL
			document.getElementById('countSearchMovil').innerHTML = searchCount + ' resultados';
			for (var i=0; i<searchGroupsToExpand.length; i++)
				vehiculosTree.openTo(searchGroupsToExpand[i], false);
			//muevo el scroll hasta el primer movil encontrado.
			if (searchCount>0){
				var containerDiv = document.getElementById('minimenuContentVehiculosPpal');
				containerDiv.scrollTop=0;
				var fistSearchElem = document.getElementById('firstMovilSearch');
				var dim = myBoundingHandler.getDimension(fistSearchElem);
				containerDiv.scrollTop=dim.y-200;
			}
		}
	}

/***************************CARGA DE POSIMOVIL********************************/
	var flagCargarPosiMovil = false;
	function CargarPosiMovil(idMovil, callback) {

		if (flagCargarPosiMovil) return;
		flagCargarPosiMovil = true;
    	$j("#iconoMapa").removeClass().addClass("icono_mapa_activo");
		var params = { COMMAND: "REFRESH",
					   cuentas: idMovil
					 };
		var myAjax = new MyAjax();
		var onReady = function(req){
						     var results = jQuery.parseJSON(req.responseText);
							 if ((results.length != 'undefined')&&(results.length>0)) {
							 	//cargo las posimoviles
								for (var i = 0; i < results.length; i++) {
									var movilAnterior = misVehiculosHash.get(results[i].id);
									if (movilAnterior != null){
										var latitud = 0;
										var longitud = 0;
										if (movilAnterior.POSIMOVIL != null) {
											latitud =  movilAnterior.POSIMOVIL.latitud;
											longitud = movilAnterior.POSIMOVIL.longitud;
										}
										misVehiculosHash.get(results[i].id).POSIMOVIL = results[i];
										if (latitud != results[i].latitud || longitud != results[i].longitud || VEH_SIMPLEVIEW == 2) {
											if (VEH_SIMPLEVIEW==1){
												cMapController.getMapActive().putSimpleIconCar(results[i].id);
											}else{
												cMapController.getMapActive().putIconCar(results[i].id);
											}
										}
									}
								}
							 }
							 flagCargarPosiMovil = false;
							 $j("#iconoMapa").removeClass().addClass("icono_mapa");
							 //llamo a callback
							 if (callback!=null){
								 callback();
							 }
						  }
		var onError = function(req){
							flagCargarPosiMovil = false;
						    $j("#iconoMapa").removeClass().addClass("icono_mapa");
						  }
		myAjax.send('querycontroller.php', params, onReady, onError);
	}

/****************************CARGA DE COMANDOS*******************************/
var reqParamMisComandos = null;
var reqHandlerMisComandos = null;

function CargarMisComandos() {
	reqParamMisComandos = "COMMAND=MISCOMANDOS";
	reqParamMisComandos += "&CUENTA=" + LOGIN.cuentaFk;
	reqParamMisComandos += "&ESFLOTA=" + LOGIN.objetivoDB;
	reqParamMisComandos += "&OBJETIVO="+ LOGIN.objetivo;
	reqParamMisComandos += "&TABLAID="+ LOGIN.tablaId;
	if (msie)
    		reqHandlerMisComandos = new ActiveXObject("Microsoft.XMLHTTP");
	else
    		reqHandlerMisComandos = new XMLHttpRequest();
	reqHandlerMisComandos.onreadystatechange = OnReadyStateChangeMisComandos;
	reqHandlerMisComandos.open("POST", "querycontroller.php", true);
	reqHandlerMisComandos.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	reqHandlerMisComandos.send(reqParamMisComandos);
}


function OnReadyStateChangeMisComandos(){
	ready = reqHandlerMisComandos.readyState;
	if (ready == READY_STATE_COMPLETE) {
		var misComandosJSON = jQuery.parseJSON(reqHandlerMisComandos.responseText);
		if (misComandosJSON.length != 'undefined') {
			misComandosHash = new Hashtable();
			for (i=0; i<misComandosJSON.length; i++){
				misComandosHash.put(misComandosJSON[i].id.toString(), misComandosJSON[i]);
			}
		}
	}
}

/****************************CARGA DE MOVILES********************************/
function OnReadyStateChangeMisVehiculos(){
	ready = reqHandlerMisVehiculos.readyState;
	if(ready == READY_STATE_LOADING || ready == READY_STATE_LOADED){
		$j('#divListaVehiculos').html("<img src='images/loader_accordeon.gif' alt='Cargando...' />");
	}else if (ready == READY_STATE_COMPLETE) {
		misVehiculosJSON = jQuery.parseJSON(reqHandlerMisVehiculos.responseText);
		if (misVehiculosJSON != false) {
			var countMoviles = misVehiculosJSON.length;
			var hayMasLotes = false;
			if (countMoviles == misVehiculos_loteo + 1){
				countMoviles=countMoviles-1;
				hayMasLotes = true;
			}
			for (i=0; i<countMoviles; i++){
				if (!LOGIN.isBykom){
					misVehiculosHash.put(misVehiculosJSON[i].id,misVehiculosJSON[i]);
				}else if (parseInt(PERMISOS_BYKOM[parseInt(misVehiculosJSON[i].avlRestringido)-1])){
					misVehiculosHash.put(misVehiculosJSON[i].id,misVehiculosJSON[i]);
				}
			}
			if( (LOGIN.isBykom && flotaCentralId!=undefined && flotaCentralId != "" && 
					( (LOGIN.cuentaFk!=flotaCentralId && LOGIN.objetivoDB == 3) || LOGIN.objetivoDB == 2 )) ){
				infoDatosCuenta();
				return true;
			}
			vehiculosCargadosFlag = true;
			for(var i=0;i<cMapController.getMaps().length;i++){
				if(cMapController.getMapasVisibles().length>0){
					iMapaVisible = cMapController.getMapasVisibles()[i];
				}else{
					iMapaVisible = i;
				}
				cMapController.getMapById(iMapaVisible).CargarSeguimiento();
				cMapController.getMapById(iMapaVisible).refreshViewMisVehiculos();
			}
			//en CargarMisGrupos tambien se llama a CargarMisZonas al terminar, para poder saber cuando se termina 
			//de cargar los hash y asi poder verificar con la configuracion guardada
			if(LOGIN.PERMISOS[4]){
				dinamicIncludes_Map.setMessage('Cargando Mis Puntos...');
				CargarMisGrupos();//carga los grupos de "MisPuntos"
			}else if (LOGIN.PERMISOS[5]){
				dinamicIncludes_Map.setMessage('Cargando Mis Zonas...');
				CargarMisZonas();
			}else if (LOGIN.PERMISOS[20]){
				dinamicIncludes_Map.setMessage('Cargando Mis Rutas...');
				cMapController.cargarMisRutas();
			}else{
				cMapController.finCargaInicial();
			}
			
			if (LOGIN.PERMISOS[2] || LOGIN.PERMISOS[3])
				CargarMisComandos();

		}else{ //Se produjo un error
			vehiculosCargadosFlag = true;
			$j("#seguimiento").hide();
			$j("#seleccionActual").hide();
			//$j("#miszonas").hide();
			//$j("#misrutas").hide();
			cantidadTabsAcordeon= cantidadTabsAcordeon-2; 
			refreshMapMainContent();
			//en CargarMisGrupos tambien se llama a CargarMisZonas al terminar, para poder saber cuando se termina 
			//de cargar los hash y asi poder verificar con la configuracion guardada
			if(LOGIN.PERMISOS[4]){
				dinamicIncludes_Map.setMessage('Cargando Mis Puntos...');
				CargarMisGrupos();//carga los grupos de "MisPuntos"
			}else{
				cMapController.finCargaInicial();
			}
			//alert('Se produjo un error en la conexion, por favor reintente inicializar la seccion de mapas.');
			//return false;
		}
		$j("#iconoMapa").removeClass().addClass("icono_mapa");
		autoRefreshFlag = 0;
	}
}

var loteActualCargaMoviles = 0;
function CargarMisVehiculos(nroLote) {
	if (nroLote==null)
		nroLote = 0;
	
	//Controles OpenLayers
	if (VEH_SIMPLEVIEW==1){
		for(var i=0;i<cantMapas;i++){
			if(cMapController.getMapasVisibles().length>0){
				iMapaVisible = cMapController.getMapasVisibles()[i];
			}else{
				iMapaVisible = i;
			}
			cMapController.getMapById(iMapaVisible).getMap().addLayer(cMapController.getMapById(iMapaVisible).getVehiculosSentidosSimpleLayer());
			cMapController.getMapById(iMapaVisible).getVehiculosSentidosSimpleLayer().div.style.zIndex=701;
			
			cMapController.getMapById(iMapaVisible).getMap().addLayer(cMapController.getMapById(iMapaVisible).getVehiculosSimpleLayer());
			cMapController.getMapById(iMapaVisible).getVehiculosSimpleLayer().div.style.zIndex=901;
			
			cMapController.getMapById(iMapaVisible).getMap().addControl(cMapController.getMapById(iMapaVisible).getSelectVehiculoSimple());
			cMapController.getMapById(iMapaVisible).getSelectVehiculoSimple().activate();
			//cMapController.getMapById(i).getMap().setLayerZIndex(cMapController.getMapById(i).getVehiculosSimpleLayer(),0);
		}
	}
	for(var i=0;i<cantMapas;i++){
		if(cMapController.getMapasVisibles().length>0){
			iMapaVisible = cMapController.getMapasVisibles()[i];
		}else{
			iMapaVisible = i;
		}
		//inicializo el vector de los divs contenedores de los mapas
		cMapController.getMapById(iMapaVisible).getMap().addLayer(cMapController.getMapById(iMapaVisible).getVehiculosLayer());
		cMapController.getMapById(iMapaVisible).getVehiculosLayer().div.style.zIndex=915;
	}

	if(LOGIN.isBykom && LOGIN.objetivoDB==1){
		if(flotaCentralId!=""){//si es fijo y tiene central
			infoDatosCuenta();
		}
	}else{
		reqParamMisVehiculos = "COMMAND=MOVILES";
		reqParamMisVehiculos += "&CUENTA=" + LOGIN.cuentaFk;
		reqParamMisVehiculos += "&OBJETIVO=" + parseInt(LOGIN.objetivo);
		reqParamMisVehiculos += "&OBJETIVODB=" + LOGIN.objetivoDB;
		reqParamMisVehiculos += "&TABLAID=" + LOGIN.tablaId;
		reqParamMisVehiculos += "&LBLFORMAT=" + VEH_LBLFORMAT;
		reqParamMisVehiculos += "&LBLMAPFORMAT=" + VEH_LBLMAPFORMAT;
		reqParamMisVehiculos += "&DDEREC=" + (nroLote * misVehiculos_loteo);
		reqParamMisVehiculos += "&COUNTREC=" + (misVehiculos_loteo + 1);
		if(cMapController.getVehiculosVisiblesGral().length>0){
			reqParamMisVehiculos += "&CTASVISIBLES=" + cMapController.getVehiculosVisiblesGral().join(",");
		}else if (cMapController.getMapActive().getVehiculosVisiblesId().length>0)
			reqParamMisVehiculos += "&CTASVISIBLES=" + cMapController.getMapActive().getVehiculosVisiblesId().join(",");
		else if (cMapController.getMapActive().getCuentaSeguimiento()!='-1')
				reqParamMisVehiculos += "&CTASVISIBLES=" + cMapController.getMapActive().getCuentaSeguimiento();
		$j("#iconoMapa").removeClass().addClass("icono_mapa_activo");
		autoRefreshFlag = 1;
		if (msie)
	        reqHandlerMisVehiculos = new ActiveXObject("Microsoft.XMLHTTP");
	    else
	        reqHandlerMisVehiculos = new XMLHttpRequest();
	    reqHandlerMisVehiculos.onreadystatechange = OnReadyStateChangeMisVehiculos;
	    reqHandlerMisVehiculos.open("POST", "querycontroller.php", true);
	    reqHandlerMisVehiculos.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		reqHandlerMisVehiculos.send(reqParamMisVehiculos);
	}
}

function OnReadyStateChangeMisVehiculosCentral(){
	ready = reqHandlerMisVehiculos.readyState;
	if (ready == READY_STATE_COMPLETE) {
		misVehiculosJSON = jQuery.parseJSON(reqHandlerMisVehiculos.responseText);
		if (misVehiculosJSON.length != undefined) {
			
			var countMoviles = misVehiculosJSON.length;
			var hayMasLotes = false;
			if (countMoviles == misVehiculos_loteo + 1){
				countMoviles=countMoviles-1;
				hayMasLotes = true;
			}
			for (i=0; i<countMoviles; i++){
				misVehiculosJSON[i].grupoId = flotaCentralId.toString();
				if (!LOGIN.isBykom){
					misVehiculosHash.put(misVehiculosJSON[i].id,misVehiculosJSON[i]);
				}else if (parseInt(PERMISOS_BYKOM[parseInt(misVehiculosJSON[i].avlRestringido)-1])){
					misVehiculosHash.put(misVehiculosJSON[i].id,misVehiculosJSON[i]);
				}
			}
			vehiculosCargadosFlag = true;
			for(var i=0;i<cMapController.getMaps().length;i++){
				if(cMapController.getMapasVisibles().length>0){
					iMapaVisible = cMapController.getMapasVisibles()[i];
				}else{
					iMapaVisible = i;
				}
				cMapController.getMapById(iMapaVisible).CargarSeguimiento();
				cMapController.getMapById(iMapaVisible).refreshViewMisVehiculos();
			}
			if (LOGIN.PERMISOS[2] || LOGIN.PERMISOS[3])
				CargarMisComandos();

			//en CargarMisGrupos tambien se llama a CargarMisZonas al terminar, para poder saber cuando se termina 
			//de cargar los hash y asi poder verificar con la configuracion guardada
			if (LOGIN.PERMISOS[4]){
				dinamicIncludes_Map.setMessage('Cargando Mis Puntos...');
				CargarMisGrupos();//carga los grupos de "MisPuntos"
			}else if (LOGIN.PERMISOS[5]){
				dinamicIncludes_Map.setMessage('Cargando Mis Zonas...');
				CargarMisZonas();
			}else{
				cMapController.finCargaInicial();
			}
			
			if (LOGIN.PERMISOS[2] || LOGIN.PERMISOS[3])
				CargarMisComandos();

			//oculto el pa�o del 'loading'
			document.getElementById('mapLoadingPanel').style.display = "none";
		}else { //Se produjo un error o no tiene vehiculos
			if (LOGIN.PERMISOS[4]){
				dinamicIncludes_Map.setMessage('Cargando Mis Puntos...');
				CargarMisGrupos();//carga los grupos de "MisPuntos"
			}else if (LOGIN.PERMISOS[5]){
				dinamicIncludes_Map.setMessage('Cargando Mis Zonas...');
				CargarMisZonas();
			}else{
				cMapController.finCargaInicial();
			}
			//alert('Se produjo un error en la conexion, por favor reintente inicializar la seccion de mapas.');
			return false;
		}
	$j("#iconoMapa").removeClass().addClass("icono_mapa");
	autoRefreshFlag = 0;
	}
}

function infoDatosCuenta(){
	$j.ajax({
      type: "POST",
      url: "querycontroller.php",
      data: "COMMAND=INFOCUENTA&CUENTA="+flotaCentralId+"&OBJETIVO=3",
      success: function(data) {
      		var dataAux =	jQuery.parseJSON(data);
        	if (dataAux.length != 'undefined') {
        		if(dataAux.length >0){
		        	for(var i=0; i < dataAux.length; i++){
		        		misGruposVehiculosHash.put(flotaCentralId.toString(),dataAux[i]);	
				  	}
		        	CargarMisVehiculosCentral();
        		}else{
        			if (LOGIN.PERMISOS[4]){
        				dinamicIncludes_Map.setMessage('Cargando Mis Puntos...');
        				CargarMisGrupos();//carga los grupos de "MisPuntos"
        			}else if (LOGIN.PERMISOS[5]){
        				dinamicIncludes_Map.setMessage('Cargando Mis Zonas...');
        				CargarMisZonas();
        			}else{
        				cMapController.finCargaInicial();
        			}
    			}
        	}
  	  }
  });
}

function CargarMisVehiculosCentral(nroLote) {
	if (nroLote==null)
		nroLote = 0;
	reqParamMisVehiculos = "COMMAND=MOVILES";
	reqParamMisVehiculos += "&CUENTA=" + flotaCentralId;
	reqParamMisVehiculos += "&OBJETIVO=" + 3;
	reqParamMisVehiculos += "&OBJETIVODB=" + 3;
	reqParamMisVehiculos += "&TABLAID=" + LOGIN.tablaId;
	reqParamMisVehiculos += "&LBLFORMAT=" + VEH_LBLFORMAT;
	reqParamMisVehiculos += "&LBLMAPFORMAT=" + VEH_LBLMAPFORMAT;
	reqParamMisVehiculos += "&DDEREC=" + (nroLote * misVehiculos_loteo);
	reqParamMisVehiculos += "&COUNTREC=" + (misVehiculos_loteo + 1);
	
	$j("#iconoMapa").removeClass().addClass("icono_mapa_activo");
	autoRefreshFlag = 1;
	if (msie)
		reqHandlerMisVehiculos = new ActiveXObject("Microsoft.XMLHTTP");
	else
		reqHandlerMisVehiculos = new XMLHttpRequest();
	reqHandlerMisVehiculos.onreadystatechange = OnReadyStateChangeMisVehiculosCentral;
	reqHandlerMisVehiculos.open("POST", "querycontroller.php", true);
	reqHandlerMisVehiculos.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	reqHandlerMisVehiculos.send(reqParamMisVehiculos);
}

//**************************FUNCIONES PARA MANIPULAR VEHICULOS(GMAPICONS) EN EL MAPA************************//
function vehiculoOnClick(evt, movilId){
	cMapController.getMapActive().seleccionarMovil(movilId);
	cleanAllStates();
	clickOpcionAcordeon("seleccionActual");
	RefreshForm();
    OpenLayers.Event.stop(evt);
}

function vehiculoOnClickGuille(evt, idmap, movilId){
	cMapController.getMapById(idmap).seleccionarMovil(movilId);
	cleanAllStates();
	clickOpcionAcordeon("seleccionActual");
	RefreshForm();
    OpenLayers.Event.stop(evt);
}



function createMarkerSentido(point, icon) {
	marker = new OpenLayers.Marker(point, icon);
	return marker;
}

function obtenerLabelSentido(sentido) {
	if (sentido >= 22 && sentido <= 67)   return "ne";
    if (sentido >= 68 && sentido <= 112)  return "e";
	if (sentido >= 113 && sentido <= 157) return "se";
	if (sentido >= 158 && sentido <= 202) return "s";
	if (sentido >=203  && sentido <= 247) return "so";
	if (sentido >= 248 && sentido <= 292) return "o";
	if (sentido >= 293 && sentido <= 337) return "no";
	if ((sentido >= 338 && sentido <= 360) || ((sentido >= 0 && sentido <= 21))) return "n";
	return "";
}

function obtenerPalabraSentido(sentido) {
	if (sentido >= 22 && sentido <= 67)   return "NORESTE";
    if (sentido >= 68 && sentido <= 112)  return "ESTE";
	if (sentido >= 113 && sentido <= 157) return "SURESTE";
	if (sentido >= 157 && sentido <= 202) return "SUR";
	if (sentido >=203  && sentido <= 247) return "SUROESTE";
	if (sentido >= 248 && sentido <= 292) return "OESTE";
	if (sentido >= 293 && sentido <= 337) return "NOROESTE";
	if ((sentido >= 338 && sentido <= 360) || ((sentido >= 0 && sentido <= 21))) return "NORTE";
	return "";
}
	
/*****************************************************************************/
//CENTRO DE COMANDOS
var procesadoComandoFlag = false;
var comandosResponseArray = new Array();
var comandosResponseCtasArray = new Array();

var reqHandlerSaveComando = null;
var reqHandlerRecibirComando = null;
var countCommandsDisplayed = 0; //cantidad de comandos enviados e impresos en el display.

var comandoTimeMIN = 0;
var comandoTimeSEG = 0;
var comandoSendMovilesArray = new Array();

var comandoRefreshClockIntervalLIMIT = 1; //limite en segundos

var comandoRefreshTimeOut = null;
var comandoRefreshTimeInterval = null;

var stopCommandProcess = false;


function createPopUpMisComandos(e, element){
	   PopUpMenuMap = new PopupMenu();

	   //COMANDOS BYKOM
	   PopUpMenuMap.add("Actualizar posicion", function(target) {
 	   		document.getElementById('comandosInput').value = ">REFRESH_POS<";
	   });
	   PopUpMenuMap.add("Resetear Odometro parcial", function(target) {
 	   		document.getElementById('comandosInput').value = ">RST_OD_PAR<";
	   });
	   PopUpMenuMap.add("Resetear Odometro total", function(target) {
 	   		document.getElementById('comandosInput').value = ">RST_OD_TOT<";
	   });
	   PopUpMenuMap.add("Corte de combustible", function(target) {
 	   		document.getElementById('comandosInput').value = ">CORTE_COMBUSTIBLE_0<";
	   });
	   PopUpMenuMap.add("Anular corte de combustible", function(target) {
 	   		document.getElementById('comandosInput').value = ">CORTE_COMBUSTIBLE_1<";
	   });
	   PopUpMenuMap.add("-------------------------------------------------", function(target) {

	   });
	   //COMANDOS PROPIOS
	   var misComandosList=misComandosHash.values();
	   for (var i=0; i < misComandosList.length; i++) {
	   		var comandoId = misComandosList[i].id;
	 	    PopUpMenuMap.add(misComandosList[i].descripcion + ' -> ' + misComandosList[i].comando, function(target) {
	 	    	var comandoPersonalizado = misComandosHash.get(comandoId);
	 	    	document.getElementById('comandosInput').value = comandoPersonalizado.comando;
	  	    });
	   }
	   PopUpMenuMap.setSize(140, 0);
       PopUpMenuMap.bind(element); // target is this pre block
       PopUpMenuMap.show(e);
	   return false;

}

function cleanEstadoCentroDeComandos(){
	hideDiv('div_centroComandos');
	showDiv('div_vehiculosPpal');
	sendCommandPanelActive=false;
}

function printTableComandos(){
	table = '<table>';
	table += '<tr>';
	table += '<td>';
	if (comandoResponse == null)
		table += ' <span class="inputLBL">Esperando respuesta del movil...</span>';
	else
		table += ' <span class="inputLBL">comandoResponse</span>';
	table += '</td>';
	table += '</tr>';
	table = '</table>';
	document.getElementById('divComandosList').innerHTML = table;
}

   function collapsePanelComandosMultiple(){
	    var img = document.getElementById('panel_comandosMultipleIMG');
		if (document.getElementById('panel_comandosMultiple').style.display == "none"){
			img.src = "images/collapsePanelIcon.gif";
			img.title = "Colapsar el panel de vehiculos";
			showDiv('panel_comandosMultiple');
		}
		else {
			img.src = "images/openPanelIcon.gif";
			img.title = "Mostrar el panel de vehiculos";
			hideDiv('panel_comandosMultiple');
		}
   }

   function addOptionsToComandosVehiculos(){
	    var output = '';
		if (comandoSendMovilesArray.length>1){ //comandos a multiples moviles
		    output += '<div style="float:left;"><span class="resaltado">Envio m&uacute;ltiple (a '+comandoSendMovilesArray.length+' vehiculos)</span></div>';
			output += '<div style="float:right;"><img src="images/openPanelIcon.gif" id="panel_comandosMultipleIMG" style="cursor: pointer;" title="Mostrar el panel de vehiculos" onclick="collapsePanelComandosMultiple();" /></div>';
			output += '';
			
			output += '<div id="panel_comandosMultiple" style="overflow:auto; display:none; width:100%; clear:both;">';
			output += '<table width="95%" id="eventosTablePrint" class="reportAVL" cellspace="0" cellpadding="0">';
		    for (var i=0; i<comandoSendMovilesArray.length; i++){
				var Movil = misVehiculosHash.get(comandoSendMovilesArray[i].toString());
				output += '<tr><td><span class="inputTEXT">  * '+Movil.label+'</span></td></tr>';
			}
			output += '</table></div>';
		} else { // comando a un solo movil
			var Movil = misVehiculosHash.get(comandoSendMovilesArray[0].toString());
			output += '<div style="float:left;"><span class="resaltado">Vehiculo: ' + Movil.label + '</span></div>';
		}
		
		document.getElementById('div_comandosMovil').innerHTML = output;
	}


function centroDeComandos(idVehiculo){
	if ((idVehiculo==null)&&(cMapController.getMapActive().getVehiculosSeleccionadosId().length==0)){
		alert('Debe seleccionar al menos un vehiculo para realizar esta operacion.');
		return;
	}
	hideDiv('div_vehiculosPpal');
	showDiv('div_centroComandos');
	clickOpcionAcordeon("vehiculos");
	sendCommandPanelActive = true;
	if (!procesadoComandoFlag){
		comandoSendMovilesArray = new Array();
		if (idVehiculo==null){//envio multiple
			for (var i=0; i<cMapController.getMapActive().getVehiculosSeleccionadosId().length; i++)
				comandoSendMovilesArray.push(cMapController.getMapActive().getVehiculosSeleccionadosId()[i]);
		}
		else{
			comandoSendMovilesArray.push(idVehiculo);
		}
		addOptionsToComandosVehiculos();
	}
}

function validarSendCommand(){
	if (trim(document.getElementById('comandosInput').value).length==0){
		alert("El comando no es valido.");
		return false;
	}
	return true;

}

	function disabledSendCommand(disabled){
		disabledTXT="disabled";
		if (!disabled){
			disabledTXT="";
			//document.getElementById('comandosInput').value="";
		}
		document.getElementById('comandosInput').disabled=disabledTXT;
		document.getElementById('comandosSendButton').disabled=disabledTXT;
		document.getElementById('comandosCleanButton').disabled=disabledTXT;
		document.getElementById('comandosBackButton').disabled=disabledTXT;
		document.getElementById('comandosSearchButton').disabled=disabledTXT;

	}

	function getTextFromCommandState(state){
		switch(state){
			case -1: return 'Enviando comando al servidor.';
			case 0: return 'Enviando comando al movil.';
			case 1: return 'Esperando respuesta del movil.';
			case 2: return 'OK - El movil respondio al comando.';
			default: return 'DESCONOCIDO.';
		}
	}

	function printComando(command, type, idMovil){
		var line='';
		var sendDivId = 'commandSend'+countCommandsDisplayed;
		var receiveDivId = 'commandReceive'+countCommandsDisplayed+idMovil;
		var display = document.getElementById('divComandosList');
		var labelMovil = 'unknow movil label';
		if (idMovil!=null){
			var Movil = misVehiculosHash.get(idMovil.toString());
			labelMovil = '<span style="color:black; background:white; font-weight:bold;">'+Movil.label+'</span><br>';
		}
		switch (parseInt(type)){
			//linea de envio de comando(texto)
			case 0: countCommandsDisplayed++;
					display.innerHTML += '<div class="commandSendLine" id="'+sendDivId+'">'+command+'<div class="commandTimerDisplay" id=commandTimerDisplay'+countCommandsDisplayed+'>00:00</div></div>';
 					break;
		    //linea de recepcion de comando
			case 1: try{ var receiveDiv = document.getElementById(receiveDivId);
						 receiveDiv.innerHTML = labelMovil + command;
						}
					catch(err){ display.innerHTML += '<div class="commandReceiveLine" id="'+receiveDivId+'">'+labelMovil+command+'</div>';}
					break;
			 //linea de error en comando
			case 9: try{ var receiveDiv = document.getElementById(receiveDivId);
						 receiveDiv.className = "commandErrorLine";
						 receiveDiv.innerHTML = labelMovil+command;
						}
					catch(err){ display.innerHTML += '<div class="commandErrorLine">'+labelMovil+command+'</div>';}
					break;
			default: display.innerHTML += '<div><b>UNKNOW: </b>'+labelMovil+command+'</div>';
			}
		document.getElementById('divComandosList').scrollTop=document.getElementById('divComandosList').scrollHeight;
	}

	function OnReadyStateChangeRecibirComando(){
		if (!stopCommandProcess){
			ready = reqHandlerRecibirComando.readyState;
			if (ready == READY_STATE_COMPLETE) {
				var comandosResJSON = jQuery.parseJSON(reqHandlerRecibirComando.responseText);
				for (var i=0; i<comandosResJSON.length; i++){
					var comandosRes = comandosResJSON[i];
					if ((comandosRes != null)&&(comandosRes != 'undefined')&&(comandosRes != false)) {
						var lineReceive = '<b>Estado: </b>'+ getTextFromCommandState(parseInt(comandosRes.estado));
						printComando(lineReceive, 1, comandosRes.cuentaId);
						if (parseInt(comandosRes.estado)==2){ //termino el envio-recepcion del comando!
							printComando(comandosRes.respuesta, 1, comandosRes.cuentaId);
							//elimino este id del array comandosResponseArray.
							var pos=indexOfArray(comandosResponseArray,comandosRes.envioId.toString());
							var pos2=indexOfArray(comandosResponseCtasArray,comandosRes.cuentaId.toString());
							if (pos!=-1)
								comandosResponseArray.splice(pos,1);
							if (pos2!=-1)
								comandosResponseCtasArray.splice(pos2,1);
							//si ya no quedan mas respuestas en espera, dejar de recibir
							if (comandosResponseArray.length==0){
								stopCommandProcess = true;
								clearInterval(comandoRefreshTimeInterval);
								clearTimeout(comandoRefreshTimeOut);
								disabledSendCommand(false);
							}
						}
					}
				}
				document.getElementById("comandosBusyImg").style.visibility = "hidden";
				recibirComando();
			}
		}
	}

	function recibirComando() {
		if (!stopCommandProcess){
	    	reqParamsRecibirComando = "COMMAND=REFRESH";
			reqParamsRecibirComando += "&IDS="+comandosResponseArray.toString();
		    document.getElementById("comandosBusyImg").style.visibility = "visible";
    		if (msie)
            	reqHandlerRecibirComando = new ActiveXObject("Microsoft.XMLHTTP");
		    else
    		    reqHandlerRecibirComando = new XMLHttpRequest();
			reqHandlerRecibirComando.onreadystatechange = OnReadyStateChangeRecibirComando;
		    reqHandlerRecibirComando.open("POST", "persistircomando.php", true);
    		reqHandlerRecibirComando.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			reqHandlerRecibirComando.send(reqParamsRecibirComando);
		}
    }

	function autoRefreshCommandClock(){
		if (comandosResponseArray.length>0){
			comandoTimeSEG=comandoTimeSEG+comandoRefreshClockIntervalLIMIT;
			if (comandoTimeSEG > 60){
				comandoTimeSEG=0;
				comandoTimeMIN++;
			}
			var tiempoString = ((comandoTimeMIN < 10) ? '0' + comandoTimeMIN : comandoTimeMIN)
								+'<blink>:</blink>'
								+((comandoTimeSEG < 10) ? '0' + comandoTimeSEG : comandoTimeSEG);
			document.getElementById('commandTimerDisplay'+countCommandsDisplayed).innerHTML = tiempoString;
		}
	}

	function activateRefreshCommand(){
		comandoRefreshTimeInterval = setInterval("autoRefreshCommandClock();", comandoRefreshClockIntervalLIMIT * 1000);
    	autoRefreshCommandClock();
		recibirComando();
	}

	function timeOutRefreshCommand(){ //funcion que se llama cuando se vence el tiempo de espera de una respuesta...
		if (comandosResponseArray.length>0){
			for (var i=0; i<comandosResponseCtasArray.length; i++)
				printComando('Se vencio el tiempo de espera para procesar este comando.',9,comandoSendMovilesArray[i]);
			clearInterval(comandoRefreshTimeInterval);
			comandosResponseArray = new Array();
			comandosResponseCtasArray = new Array()
			stopCommandProcess = true;
			document.getElementById("comandosBusyImg").style.visibility = "hidden";
			disabledSendCommand(false);
			}
	}

	function cleanDisplayDeComandos(){
		if (!document.getElementById('comandosInput').disabled){
			document.getElementById('divComandosList').innerHTML="";
			countCommandsDisplayed = 0;
		}
	}

	function OnReadyStateChangeSaveComando(){
		ready = reqHandlerSaveComando.readyState;
		if (ready == READY_STATE_COMPLETE) {
			nuevosComandosJSON = jQuery.parseJSON(reqHandlerSaveComando.responseText);
			if (nuevosComandosJSON.length > 0) {
				comandoTimeMIN = 0;
				comandoTimeSEG = 0;
				comandosResponseArray = new Array();
				comandosResponseCtasArray = new Array();
				for (var i=0; i<nuevosComandosJSON.length; i++){
					var comandoResponse = nuevosComandosJSON[i];
					if (comandoResponse!=-1){
						var lineReceive = '<b>Estado: </b>'+ getTextFromCommandState(parseInt(comandoResponse.estado));
						printComando(lineReceive, 1, comandoResponse.cuenta);
						comandosResponseArray.push(comandoResponse.id);
						comandosResponseCtasArray.push(comandoResponse.cuenta);
					}
					else{
						printComando('Ocurrio un error en la DB al tratar de enviar el comando.',9,comandoSendMovilesArray[i]);
					}
				}
				clearTimeout(comandoRefreshTimeOut);
	  			comandoRefreshTimeOut = setTimeout ( "timeOutRefreshCommand();", parseInt(CMD_TIMEOUT) * 1000 );
				activateRefreshCommand();
			}
			else{
				printComando('Ocurrio un error en la DB al tratar de enviar los comandos.',9);
				disabledSendCommand(false);
			}
			document.getElementById("comandosBusyImg").style.visibility = "hidden";
		}
	}

	function getComandosUserLabel(){
		var label = ""
		if(parseInt(LOGIN.objetivoDB)==2)
			label += "MOVIL: "+LOGIN.labelCuenta;
		if(parseInt(LOGIN.objetivoDB)==3)
			label += "FLOTA: "+LOGIN.labelCuenta;
		if(parseInt(LOGIN.objetivo)==4)
			label += ", ALIAS: "+LOGIN.label;
		return label;
	}

	function guardarComando() {
		if (validarSendCommand()){
			disabledSendCommand(true);
			comandoResponse = null;
			stopCommandProcess = false;
	    	reqParamsSaveComando = "COMMAND=SAVE";
			comando = "PROPIO,"+document.getElementById('comandosInput').value;
			reqParamsSaveComando += "&ID=";
    		reqParamsSaveComando += "&CUENTAS="+comandoSendMovilesArray.toString();
			var movilesID = new Array();
			for (var i=0; i<comandoSendMovilesArray.length; i++){
				var Movil = misVehiculosHash.get(comandoSendMovilesArray[i].toString());
				movilesID.push(Movil.movil);
			}
			reqParamsSaveComando += "&MOVILIDS="+movilesID.toString();
			reqParamsSaveComando += "&COMANDO="+comando;
			reqParamsSaveComando += "&ESTADO=0";
			reqParamsSaveComando += "&RECEPTORA=0";
    		reqParamsSaveComando += "&TERMINAL="+getComandosUserLabel();
	    	document.getElementById("comandosBusyImg").style.visibility = "visible";
    		if (msie)
        	    reqHandlerSaveComando = new ActiveXObject("Microsoft.XMLHTTP");
	        else
    	        reqHandlerSaveComando = new XMLHttpRequest();
			reqHandlerSaveComando.onreadystatechange = OnReadyStateChangeSaveComando;
	        reqHandlerSaveComando.open("POST", "persistircomando.php", true);
    	    reqHandlerSaveComando.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			var lineSend = '<b>COMANDO ENVIADO >> ' + comando + '</b>';
			printComando(lineSend,0);
			var lineReceive = '<b>Estado: </b>'+ getTextFromCommandState(-1);
			for (var i=0; i<comandoSendMovilesArray.length; i++)
				printComando(lineReceive,1,comandoSendMovilesArray[i]);
			reqHandlerSaveComando.send(reqParamsSaveComando);
		}
    }


	//BUSQUEDA DE TEXTO EN EL DISPLAY DE COMANDOS
	function searchComandos(texto){
		if ((texto.length > 0)&&(texto!="Buscar...")){
			var Display = document.getElementById('divComandosList');
			var arrayDivs = Display.getElementsByTagName('div');
			var searchCount = 0;
			var textToSearch = texto.toUpperCase(); //para Case-insensitive Search
			for (var i=0; i<arrayDivs.length; i++){
				if (arrayDivs[i].className!='commandTimerDisplay'){
					var contentDiv = arrayDivs[i].innerHTML.toUpperCase();
					if (contentDiv.search(textToSearch)!=-1){
						arrayDivs[i].style.backgroundColor="#FFFFD0";
						searchCount++;
					}
					else{
						arrayDivs[i].style.backgroundColor="transparent";
					}
				}

			}
			document.getElementById('countSearchComandos').innerHTML = searchCount + ' resultados';
		}
	}

	function cleanSearchComandos(){
		var Display = document.getElementById('divComandosList');
		var arrayDivs = Display.getElementsByTagName('div');
		for (var i=0; i<arrayDivs.length; i++){
			if (arrayDivs[i].className!='commandTimerDisplay'){
				arrayDivs[i].style.backgroundColor="transparent";
			}
		}
		document.getElementById('countSearchComandos').innerHTML = '';
	}

	function collapseBuscarComandos(){
		var searchBoxDiv = document.getElementById('searcBoxComandos');
		if (searchBoxDiv.style.display!="block"){ //esta oculto, tengo que mostrarlo
			document.getElementById('minimenuContentComandos').className='minimenuContentWithSearch block formContainer';
			searchBoxDiv.style.display="block";
		}
		else{
			document.getElementById('minimenuContentComandos').className='minimenuContent  block formContainer';
			searchBoxDiv.style.display="none";
		}
	}

//*********************** TRATAMIENTO DE GRUPOS DE VEHICULOS*******************************//
	var reqHandlerMisGruposVehiculos = null;
	var grupoModificarVehiculos = null;

	function nuevoGrupoVehiculos(){
		//mostrar panel de nuevo grupo
		document.getElementById('newGroupTitleVehiculos').innerHTML = "Nuevo grupo de vehiculos";
		document.getElementById('newGroupDescVehiculos').innerHTML = "Los grupos se utilizan para contener vehiculos que tienen caracteristicas en comun. Sugerimos se les coloque un nombre representativo.";
		hideDiv('div_vehiculosPpal');
		showDiv('div_nuevoGrupoVehiculos');
		cleanFormNuevoGrupoVehiculos();
	}

	function modificarGrupoVehiculos(idGrupo){
		document.getElementById('newGroupTitleVehiculos').innerHTML = "Modificar grupo de vehiculos";
		document.getElementById('newGroupDescVehiculos').innerHTML = "";
		hideDiv('div_vehiculosPpal');
		showDiv('div_nuevoGrupoVehiculos');
		grupoModificarVehiculos = misGruposVehiculosHash.get(idGrupo.toString());
		cleanFormModificarGrupoVehiculos();
	}

	function cleanFormNuevoGrupoVehiculos(){
		hideDiv('newGroupErrorDisplayVehiculos');
		document.getElementById("newGroupErrorDisplayVehiculos").innerHTML = "";
		document.getElementById('grupoIdHIDVehiculos').value="";
		document.getElementById('descGrupoVehiculos').value="";
		document.getElementById('nombreGrupoVehiculos').value="";
	}

	function cleanFormModificarGrupoVehiculos(){
		hideDiv('newGroupErrorDisplayVehiculos');
		document.getElementById("newGroupErrorDisplayVehiculos").innerHTML = "";
		document.getElementById('grupoIdHIDVehiculos').value=grupoModificarVehiculos.id;
		document.getElementById('descGrupoVehiculos').value=grupoModificarVehiculos.datos;
		document.getElementById('nombreGrupoVehiculos').value=grupoModificarVehiculos.nombre;
	}

	function cleanEstadoNuevoGrupoVehiculos(){ //limpia el mapa del estado "MODIFICAR/NUEVO GRUPO y AGREGAR VEHICULOS A UN GRUPO"
		if (!sendCommandPanelActive){
			cleanEstadoMovilesGrupo();
			hideDiv('div_nuevoGrupoVehiculos');
			hideDiv('div_addMovilToGroup');
			showDiv('div_vehiculosPpal');
		}
	}

	function OnReadyStateChangeMisGruposVehiculos(){
		var ready = reqHandlerMisGruposVehiculos.readyState;
		if (ready == READY_STATE_COMPLETE) {
			var misGruposVehiculosJSON = jQuery.parseJSON(reqHandlerMisGruposVehiculos.responseText);
			if (misGruposVehiculosJSON.length != 'undefined') {
				for (i=0; i<misGruposVehiculosJSON.length; i++)
					misGruposVehiculosHash.put(misGruposVehiculosJSON[i].id.toString(),misGruposVehiculosJSON[i]);
			}
			$j("#iconoMapa").removeClass().addClass("icono_mapa");
			autoRefreshFlag = 0;
			CargarMisVehiculos();
		}
	}
	
	function CargarMisGruposVehiculos() {
    	reqParamsMisGrupos = "COMMAND=MISGRUPOSVEHICULOS";
    	reqParamsMisGrupos += "&CUENTA=" + LOGIN.cuentaFk;
		reqParamsMisGrupos += "&OBJETIVO=" + LOGIN.objetivo;
    	$j("#iconoMapa").removeClass().addClass("icono_mapa_activo");
    	if (msie)
            reqHandlerMisGruposVehiculos = new ActiveXObject("Microsoft.XMLHTTP");
        else
            reqHandlerMisGruposVehiculos = new XMLHttpRequest();
        reqHandlerMisGruposVehiculos.onreadystatechange = OnReadyStateChangeMisGruposVehiculos;
        reqHandlerMisGruposVehiculos.open("POST", "querycontroller.php", true);
        reqHandlerMisGruposVehiculos.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		reqHandlerMisGruposVehiculos.send(reqParamsMisGrupos);
    }

	function validarNuevoGrupoVehiculos(){
		errorMsg = '';
		desc = document.getElementById("descGrupoVehiculos").value;
		nombre = document.getElementById("nombreGrupoVehiculos").value;

		if (trim(nombre)!=''){
			if (!_validString(nombre))
				errorMsg += "El campo 'nombre' no acepta caracteres especiales.<br>";
			}
		else
			errorMsg += "El campo 'nombre' es obligatorio.<br>";

		if (trim(desc)!=''){
			if (!_validString(desc))
				errorMsg += "El campo 'descripcion' no acepta caracteres especiales.<br>";
			}

		if (errorMsg == '')
			return true;
		document.getElementById("newGroupErrorDisplayVehiculos").innerHTML = errorMsg;
		showDiv("newGroupErrorDisplayVehiculos");
		return false;
	}

	var reqHandlerSaveMisGruposVehiculos = null;
	function OnReadyStateChangeSaveMisGruposVehiculos(){
		var ready = reqHandlerSaveMisGruposVehiculos.readyState;
		if (ready == READY_STATE_COMPLETE) {
//			var nuevoGrupoVehiculosJSON = reqHandlerSaveMisGruposVehiculos.responseText.parseJSON();
			var nuevoGrupoVehiculosJSON = jQuery.parseJSON(reqHandlerSaveMisGruposVehiculos.responseText);
			if (nuevoGrupoVehiculosJSON.id != -1) {
				misGruposVehiculosHash.put(nuevoGrupoVehiculosJSON.id.toString(),nuevoGrupoVehiculosJSON);
				alert('Grabacion realizada con exito!');
				cleanEstadoNuevoGrupoVehiculos();
				cMapController.getMapActive().refreshViewMisVehiculos();
			}
			else{
				document.getElementById('newGroupErrorDisplayVehiculos').innerHTML = 'Ocurrio un error en la DB al tratar de guardar el grupo.'
				showDiv('newGroupErrorDisplayVehiculos');
			}
			$j("#iconoMapa").removeClass().addClass("icono_mapa");
			autoRefreshFlag = 0;
		}
	}

	function guardarGrupoVehiculos() {
		hideDiv('newGroupErrorDisplayVehiculos');
		document.getElementById("newGroupErrorDisplayVehiculos").innerHTML = "";
		if (validarNuevoGrupoVehiculos()){
			es_flota = 0;
			if (parseInt(LOGIN.objetivoDB) == 3){
				es_flota=1;
			}
	    	var reqParamsMisGrupos = "COMMAND=SAVEGROUP";
    		reqParamsMisGrupos += "&ORDERID="+document.getElementById('grupoIdHIDVehiculos').value;
			reqParamsMisGrupos += "&NOMBRE="+document.getElementById('nombreGrupoVehiculos').value;
    		reqParamsMisGrupos += "&DATOS="+document.getElementById('descGrupoVehiculos').value;
    		reqParamsMisGrupos += "&FLOTAID="+LOGIN.cuentaFk;
			reqParamsMisGrupos += "&ESFLOTA="+es_flota;
    		autoRefreshFlag = 1;
	    	$j("#iconoMapa").removeClass().addClass("icono_mapa_activo");
    		if (msie)
        	    reqHandlerSaveMisGruposVehiculos = new ActiveXObject("Microsoft.XMLHTTP");
	        else
    	        reqHandlerSaveMisGruposVehiculos = new XMLHttpRequest();
			reqHandlerSaveMisGruposVehiculos.onreadystatechange = OnReadyStateChangeSaveMisGruposVehiculos;
	        reqHandlerSaveMisGruposVehiculos.open("POST", "persistirmovil.php", true);
    	    reqHandlerSaveMisGruposVehiculos.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			reqHandlerSaveMisGruposVehiculos.send(reqParamsMisGrupos);
		}
    }

	var reqHandlerDeleteMisGruposVehiculos = null;
	var deleteGrupoIdVehiculos = null;

	function OnReadyStateChangeDeleteGrupoMovil(){
		var ready = reqHandlerDeleteMisGruposVehiculos.readyState;
		if (ready == READY_STATE_COMPLETE) {
			//var deleteResponse = reqHandlerDeleteMisGruposVehiculos.responseText.parseJSON();
			var deleteResponse = jQuery.parseJSON(reqHandlerDeleteMisGruposVehiculos.responseText);
			if (deleteResponse){
				if(deleteGrupoIdVehiculos!=null){
					var grupo = misGruposVehiculosHash.get(deleteGrupoIdVehiculos.toString());
					misGruposVehiculosHash.remove(deleteGrupoIdVehiculos.toString());
					deleteGrupoIdVehiculos = null;
				}
				cMapController.getMapActive().refreshViewMisVehiculos();
			}
			else {
				alert ("Error en consulta a DB: No se pudo eliminar el/los grupos seleccionados");
			}
			$j("#iconoMapa").removeClass().addClass("icono_mapa");
			autoRefreshFlag = 0;
		}
	}

	function eliminarGrupoMovil(idGrupo) {
			deleteGrupoIdVehiculos = null;
			conf = confirm('Esta a punto de eliminar el/los grupos seleccionados. �Desea continuar de todas formas?');
			if (conf){
		    	var reqParamsMisGrupos = "COMMAND=DELETEGROUP";
	    		reqParamsMisGrupos += "&ORDERID="+idGrupo;
				deleteGrupoIdVehiculos = idGrupo;
    			autoRefreshFlag = 1;
	    		$j("#iconoMapa").removeClass().addClass("icono_mapa_activo");
	    		if (msie)
    	    	    reqHandlerDeleteMisGruposVehiculos = new ActiveXObject("Microsoft.XMLHTTP");
	    	    else
    	    	    reqHandlerDeleteMisGruposVehiculos = new XMLHttpRequest();
	        	reqHandlerDeleteMisGruposVehiculos.onreadystatechange = OnReadyStateChangeDeleteGrupoMovil;
		        reqHandlerDeleteMisGruposVehiculos.open("POST", "persistirmovil.php", true);
    		    reqHandlerDeleteMisGruposVehiculos.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
				reqHandlerDeleteMisGruposVehiculos.send(reqParamsMisGrupos);
			}
    }

	function printTableGrupoMovil(){
		tabla = '<table width="245">';
		var misVehiculosList = misVehiculosHash.values();
		var count = 0;
		for (var i=0; i<misVehiculosList.length; i++){
			if (misVehiculosList[i].grupoId==0){
				tabla += '<tr>';
				tabla += '<td width="19">';
				tabla += '<input type="checkbox" name="boxListaMovilesGrupo[]" value="'+misVehiculosList[i].id+'">';
				tabla += '</td>';
				tabla += '<td><span class="inputLBL">'+misVehiculosList[i].label+'</span></td>';
				tabla += '</tr>';
				count++;
			}
		}
		if (count==0){
			tabla += '<tr><td>';
			tabla += '<span class="inputLBL">Ya no existen vehiculos que no esten agrupados.</span>';
			tabla += '</td></tr>';
		}
		tabla += '</table>';
		document.getElementById('divListaMovilesGrupo').innerHTML = tabla;
	}

	var asignarMovilesGrupoId = new Array();
	var asignarMovilesGrupoIdGrupo = null;
	function asignarGrupoMovil(idGrupo){
		printTableGrupoMovil();
		asignarMovilesGrupoIdGrupo = idGrupo;
		var grupo = misGruposVehiculosHash.get(idGrupo.toString());
		/*if ((LOGIN.PERMISOS[9])&&(dinamicIncludes_Map.isLogisticaInclude()))
			cleanFormAplicarRegla();
		}*/
		hideDiv('div_vehiculosPpal');
		hideDiv('addMovilToGroupErrorDisplay');
		document.getElementById('addMovilToGroupGrupo').innerHTML=grupo.nombre;
		document.getElementById('addMovilToGroupTitle').innerHTML="Asignar vehiculos a un grupo";
		showDiv('div_addMovilToGroup');
	}

	function cleanEstadoMovilesGrupo(){
		hideDiv('div_addMovilToGroup');
		showDiv('div_vehiculosPpal');
	}

	function validarMovilesGrupo(){
		if (asignarMovilesGrupoId.length==0){
			document.getElementById('addMovilToGroupErrorDisplay').innerHTML = 'Debe seleccionar al menos un vehiculo.'
			showDiv('addMovilToGroupErrorDisplay');
		    return(false);
		}
		hideDiv('addMovilToGroupErrorDisplay');
		return(true);
	}

	var reqHandlerMovilesGrupo = null;
	function OnReadyStateChangeMovilesGrupo(){
		var ready = reqHandlerMovilesGrupo.readyState;
		if (ready == READY_STATE_COMPLETE) {
			//movilesGrupoJSON = reqHandlerMovilesGrupo.responseText.parseJSON();
			movilesGrupoJSON = jQuery.parseJSON(reqHandlerMovilesGrupo.responseText);
			if (movilesGrupoJSON) {
				for(var i=0; i<asignarMovilesGrupoId.length; i++)
					misVehiculosHash.get(asignarMovilesGrupoId[i]).grupoId=asignarMovilesGrupoIdGrupo;
				cMapController.getMapActive().refreshViewMisVehiculos();
				cleanEstadoMovilesGrupo();
			}
			else{
				document.getElementById('addMovilToGroupErrorDisplay').innerHTML = 'Ocurrio un error en la DB al tratar de agrupar los vehiculos.'
				showDiv('addMovilToGroupErrorDisplay');
			}
			$j("#iconoMapa").removeClass().addClass("icono_mapa");
			autoRefreshFlag = 0;
		}
	}

	function guardarMovilesGrupo() {
		asignarMovilesGrupoId = new Array();
		var fields = document.getElementsByName('boxListaMovilesGrupo[]');
		for (var i = 0; i < fields.length; i++){
			if (fields[i].checked)
				asignarMovilesGrupoId.push(fields[i].value);
			}
		if (validarMovilesGrupo()){
	    	var reqParamsMovilesGrupo = "COMMAND=AGRUPAMOVIL";
    		reqParamsMovilesGrupo += "&GRUPOID="+asignarMovilesGrupoIdGrupo;
			reqParamsMovilesGrupo += "&MOVILESIDS="+asignarMovilesGrupoId.toString();
    		autoRefreshFlag = 1;
	    	$j("#iconoMapa").removeClass().addClass("icono_mapa_activo");
    		if (msie)
        	    reqHandlerMovilesGrupo = new ActiveXObject("Microsoft.XMLHTTP");
	        else
    	        reqHandlerMovilesGrupo = new XMLHttpRequest();
			reqHandlerMovilesGrupo.onreadystatechange = OnReadyStateChangeMovilesGrupo;
	        reqHandlerMovilesGrupo.open("POST", "persistirmovil.php", true);
    	    reqHandlerMovilesGrupo.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			reqHandlerMovilesGrupo.send(reqParamsMovilesGrupo);
		}
    }

	function desagruparMovil(idMovil){
		asignarMovilesGrupoId = new Array();
		asignarMovilesGrupoId.push(idMovil);
		asignarMovilesGrupoIdGrupo = '0';
		var reqParamsMovilesGrupo = "COMMAND=AGRUPAMOVIL";
   		reqParamsMovilesGrupo += "&GRUPOID="+asignarMovilesGrupoIdGrupo;
		reqParamsMovilesGrupo += "&MOVILESIDS="+asignarMovilesGrupoId.toString();
   		autoRefreshFlag = 1;
    	$j("#iconoMapa").removeClass().addClass("icono_mapa_activo");
   		if (msie)
       	    reqHandlerMovilesGrupo = new ActiveXObject("Microsoft.XMLHTTP");
        else
   	        reqHandlerMovilesGrupo = new XMLHttpRequest();
		reqHandlerMovilesGrupo.onreadystatechange = OnReadyStateChangeMovilesGrupo;
        reqHandlerMovilesGrupo.open("POST", "persistirmovil.php", true);
   	    reqHandlerMovilesGrupo.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		reqHandlerMovilesGrupo.send(reqParamsMovilesGrupo);
	}

//BUSQUEDA DE MOVILES EN EL ARBOL

	function searchMovil(texto){
		if ((texto.length > 0)&&(texto!="Buscar...")){
			textToSearchMovil = texto.toUpperCase();
			printTableMisVehiculos();
		}
	}

	function cleanSearchMovil(){
		if (textToSearchMovil!=''){
			textToSearchMovil = '';
			document.getElementById('searchMovilInput').value="Buscar...";
			document.getElementById('countSearchMovil').innerHTML = "";
			printTableMisVehiculos();
		}
	}

	function collapseBuscarMoviles(){
		var searchBoxDiv = document.getElementById('searcBoxMoviles');
		if (searchBoxDiv.style.display!="block"){ //esta oculto, tengo que mostrarlo
			document.getElementById('minimenuContentVehiculosPpal').className='minimenuContentWithSearch block';
			searchBoxDiv.style.display="block";
			document.getElementById('searchMovilInput').focus();
		}
		else{
			document.getElementById('minimenuContentVehiculosPpal').className='minimenuContent block';
			searchBoxDiv.style.display="none";
		}
	}

//ACTIVAR/DESACTIVAR VEHICULOS

	var reqHandlerMovilesActivar = null;
	var tempMovilActivarId = null;
	var tempMovilActivarEstado = null;
	function OnReadyStateChangeMovilesActivar(){
		var ready = reqHandlerMovilesActivar.readyState;
		if (ready == READY_STATE_COMPLETE) {
		//	movilesActivarJSON = reqHandlerMovilesActivar.responseText.parseJSON();
			movilesActivarJSON = jQuery.parseJSON(reqHandlerMovilesActivar.responseText);
			if (movilesActivarJSON) {
				misVehiculosHash.get(tempMovilActivarId.toString()).activo=tempMovilActivarEstado;
				cMapController.getMapActive().refreshViewMisVehiculos();
			}
			else{
				alert('Se produjo un error al intentar cambiar el estado del vehiculo');
			}
			$j("#iconoMapa").removeClass().addClass("icono_mapa");
			autoRefreshFlag = 0;
		}
	}

	function activarMovil(movilId, activar) {
		tempMovilActivarId = movilId;
		tempMovilActivarEstado = activar;
		var fields = document.getElementsByName('boxListaMovilesGrupo[]');
    	var reqParamsMovilesActivar = "COMMAND=ACTIVAMOVIL";
   		reqParamsMovilesActivar += "&MOVILID="+movilId;
		reqParamsMovilesActivar += "&ESTADO="+activar;
   		autoRefreshFlag = 1;
    	$j("#iconoMapa").removeClass().addClass("icono_mapa_activo");
   		if (msie)
       	    reqHandlerMovilesActivar = new ActiveXObject("Microsoft.XMLHTTP");
        else
   	        reqHandlerMovilesActivar = new XMLHttpRequest();
		reqHandlerMovilesActivar.onreadystatechange = OnReadyStateChangeMovilesActivar;
        reqHandlerMovilesActivar.open("POST", "persistirmovil.php", true);
   	    reqHandlerMovilesActivar.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		reqHandlerMovilesActivar.send(reqParamsMovilesActivar);
    }

//FILTRADO DE MOVILES INACTIVOS
	function filtrarMovilesInactivos(){
		if (filtrarVehiculosInactivos) {
			filtrarVehiculosInactivos = false;
			//document.getElementById('filtrarMovilesBTN').className = 'BTNfiltrar';
			$j("#filtrarMovilesBTN").removeClass("desfiltrar").addClass("filtrar");
		}
		else{
			filtrarVehiculosInactivos = true;
			$j("#filtrarMovilesBTN").removeClass("filtrar").addClass("desfiltrar");
			//document.getElementById('filtrarMovilesBTN').className = 'BTNnoFiltrar';
			var misVehiculosList = misVehiculosHash.values();
			for (var i=0; i<misVehiculosList.length; i++){
				var movil = misVehiculosList[i];
				if (parseInt(movil.activo)==0){
					// 1) lo quito de la lista de moviles seleccionados
					var pos=indexOfArray(cMapController.getMapActive().getVehiculosSeleccionadosId(),movil.id.toString());
					if (pos!=-1)
						cMapController.getMapActive().getVehiculosSeleccionadosId().splice(pos,1);
					// 2) lo quito de la lista de moviles monitoreados
					pos=indexOfArray(vehiculosMonitoreadosId,movil.id.toString());
					if (pos!=-1)
						vehiculosMonitoreadosId.splice(pos,1);
					// 3) lo oculto a la vista (esto tb lo quita de seleccion y de seguimiento)
					cMapController.getMapActive().ocultarMovil(movil.id);
				}
			}
		}
		cMapController.getMapActive().refreshViewMisVehiculos();
	}

//*********************** LIBRETA DE CONTACTOS *******************************//

	function createOpenWindow_contacto(movilID){
		var openPopUp = function(contactoLIB, id, title){
							contactoLIB.urlBase = '';
							contactoLIB.print();
							var div = document.createElement('div');
							div.appendChild(contactoLIB.getContainer());
							var divwin = dhtmlwindow.open(id, 'div', div, title, 'width=455px,height=305px,left=200px,top=150px,resize=0,scrolling=0');
			};

		if (movilID==null){
			var objet = LOGIN.objetivo;
			if (parseInt(LOGIN.objetivo)==4)
				objet = LOGIN.objetivoDB;
			var id = LOGIN.cuentaFk+'_'+objet;
			var title = 'Contactos generales de la cuenta';
			var editmode = ((LOGIN.PERMISOS[15]))? true : false;
			var	contactoLIB = new ContactosLIB({
										     busyImg: document.getElementById('busyImg'),
											 urlServlet: 'persistircontactos.php',
											 urlBase: '',
											 cuenta: LOGIN.cuentaFk,
											 objetivo: objet,
											 editMode: editmode
										  });
			contactoLIB.cargar(function(){
										 openPopUp(contactoLIB, id, title);
									   });
	       }
		else{
			var movil = misVehiculosHash.get(movilID.toString());
			if (movil!=null){
				var id = movil.id.toString()+'_2';
				var title = 'Contactos del movil '+movil.label;
				var editmode = ((LOGIN.PERMISOS[17]))? true : false;
				var contactoLIB = new ContactosLIB({
										     busyImg: document.getElementById('busyImg'),
											 urlServlet: 'persistircontactos.php',
											 urlBase: '',
											 cuenta: movil.id.toString(),
											 objetivo: 2,
											 editMode: editmode
										  });
				contactoLIB.cargar(function(){
											    openPopUp(contactoLIB, id, title);
											  });
			}
		}
	}